package safeCommitter.core.launcher;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchesListener2;

/**
 * 
 * Executes the class that contains a main method.
 * 
 * @author Luiz Henrique Rolim
 */
public interface ISCLauncher {

	/**
	 * @param debug
	 *            wheter to debug or not the tests.
	 * @param ignoreNGXmls
	 *            wheter to ignore the testNG xml files. See testNG
	 *            documentation.
	 * @param clazzName
	 *            The name of the Class which contains the main method to be
	 *            launched on the new JVM
	 * 
	 * @param executorTemplate
	 * @param args
	 *            The arguments that will be passed to the main class. As the
	 *            number of arguments that can be passed is limited, will be
	 *            passed a temp- fileName which contains all the tests that need
	 *            to be run.
	 * @throws CoreException
	 */
	public void runClazz(Boolean debug, Boolean ignoreNGXmls, String clazzName,
			ILaunchesListener2 executorTemplate, String... args)
			throws CoreException;
}
